<?xml version="1.0" encoding="utf-8" ?>
<language xmlns="http://rsdn.ru/coloring" name="Lisp" options="(?n)">
	<!-- comments -->
	<pattern name="com">
		<entry>(?m:;.*?$)</entry>
		<entry>(?s:\#\|.*?\|\#)</entry>
	</pattern>
	<!-- literals -->
	<pattern name="str">
		<!-- strings -->
		<entry><![CDATA["((?<!\\)\\"|[^"])*"]]></entry>
		<!-- quotations -->
		<entry>\#?'[^ \(\n\r\t\)]+</entry>
	</pattern>
	<!-- LISP's conses -->
	<pattern name="kw" prefix="\b" postfix="\b">
		<entry>car</entry>
		<entry>cdr</entry>
		<entry>caar</entry>
		<entry>cadr</entry>
		<entry>cdar</entry>
		<entry>cddr</entry>
		<entry>caaar</entry>
		<entry>caadr</entry>
		<entry>cadar</entry>
		<entry>caddr</entry>
		<entry>cdaar</entry>
		<entry>cdadr</entry>
		<entry>cddar</entry>
		<entry>cdddr</entry>
		<entry>caaaar</entry>
		<entry>caaadr</entry>
		<entry>caadar</entry>
		<entry>caaddr</entry>
		<entry>cadaar</entry>
		<entry>cadadr</entry>
		<entry>caddar</entry>
		<entry>cadddr</entry>
		<entry>cdaaar</entry>
		<entry>cdaadr</entry>
		<entry>cdadar</entry>
		<entry>cdaddr</entry>
		<entry>cddaar</entry>
		<entry>cddadr</entry>
		<entry>cdddar</entry>
		<entry>cddddr</entry>
		<entry>nil</entry>
	</pattern>
	<!-- LISP has no keywords, bifs instead -->
	<pattern name="kw" prefix="\b" postfix="\b">
        <entry>abort</entry>
        <entry>abs</entry>
        <entry>acons</entry>
        <entry>acos</entry>
        <entry>acosh</entry>
        <entry>adjoin</entry>
        <entry>alphanumericp</entry>
        <entry>alter</entry>
        <entry>and</entry>
        <entry>append</entry>
        <entry>apply</entry>
        <entry>aproposc</entry>
        <entry>aref</entry>
        <entry>arrayp</entry>
        <entry>ash</entry>
        <entry>asin</entry>
        <entry>asinh</entry>
        <entry>assert</entry>
        <entry>assoc</entry>
        <entry>atan</entry>
        <entry>atanh</entry>
        <entry>atom</entry>
        <entry>bit</entry>
        <entry>boole</entry>
        <entry>boundp</entry>
        <entry>break</entry>
        <entry>butlast</entry>
        <entry>byte</entry>
        <entry>case</entry>
        <entry>catenate</entry>
        <entry>ccase</entry>
        <entry>ceiling</entry>
        <entry>cerror</entry>
        <entry>char</entry>
        <entry>character</entry>
        <entry>characterp</entry>
        <entry>choose</entry>
        <entry>chunk</entry>
        <entry>cis</entry>
        <entry>close</entry>
        <entry>clrhash</entry>
        <entry>coerce</entry>
        <entry>collect</entry>
        <entry>commonp</entry>
        <entry>compile</entry>
        <entry>complement</entry>
        <entry>complex</entry>
        <entry>complexp</entry>
        <entry>concatenate</entry>
        <entry>cond</entry>
        <entry>conjugate</entry>
        <entry>cons</entry>
        <entry>consp</entry>
        <entry>constantp</entry>
        <entry>continue</entry>
        <entry>cos</entry>
        <entry>cosh</entry>
        <entry>cotruncate</entry>
        <entry>count</entry>
        <entry>ctypecase</entry>
        <entry>decf</entry>
        <entry>declaim</entry>
        <entry>defclass</entry>
        <entry>defconstant</entry>
        <entry>defgeneric</entry>
        <entry>defmacro</entry>
        <entry>defmethod</entry>
        <entry>defpackage</entry>
        <entry>defparameter</entry>
        <entry>defsetf</entry>
        <entry>defstruct</entry>
        <entry>deftype</entry>
        <entry>defun</entry>
        <entry>defvar</entry>
        <entry>delete</entry>
        <entry>denominator</entry>
        <entry>describe</entry>
        <entry>directory</entry>
        <entry>disassemble</entry>
        <entry>do</entry>
        <entry>documentation</entry>
        <entry>dolist</entry>
        <entry>dotimes</entry>
        <entry>dpb</entry>
        <entry>dribble</entry>
        <entry>ecase</entry>
        <entry>ed</entry>
        <entry>eighth</entry>
        <entry>elt</entry>
        <entry>encapsulated</entry>
        <entry>enclose</entry>
        <entry>endp</entry>
        <entry>eq</entry>
        <entry>eql</entry>
        <entry>equal</entry>
        <entry>equalp</entry>
        <entry>error</entry>
        <entry>etypecase</entry>
        <entry>eval</entry>
        <entry>evalhook</entry>
        <entry>evenp</entry>
        <entry>every</entry>
        <entry>exp</entry>
        <entry>expand</entry>
        <entry>export</entry>
        <entry>expt</entry>
        <entry>fboundp</entry>
        <entry>fceiling</entry>
        <entry>fdefinition</entry>
        <entry>ffloor</entry>
        <entry>fifth</entry>
        <entry>fill</entry>
        <entry>find</entry>
        <entry>first</entry>
        <entry>flet</entry>
        <entry>float</entry>
        <entry>floatp</entry>
        <entry>floor</entry>
        <entry>fmakunbound</entry>
        <entry>format</entry>
        <entry>formatter</entry>
        <entry>fourth</entry>
        <entry>fround</entry>
        <entry>ftruncate</entry>
        <entry>funcall</entry>
        <entry>functionp</entry>
        <entry>gatherer</entry>
        <entry>gathering</entry>
        <entry>gcd</entry>
        <entry>generator</entry>
        <entry>gensym</entry>
        <entry>gentemp</entry>
        <entry>get</entry>
        <entry>getf</entry>
        <entry>gethash</entry>
        <entry>identity</entry>
        <entry>imagpart</entry>
        <entry>import</entry>
        <entry>incf</entry>
        <entry>inspect</entry>
        <entry>integerp</entry>
        <entry>intern</entry>
        <entry>intersection</entry>
        <entry>isqrt</entry>
        <entry>iterate</entry>
        <entry>keywordp</entry>
        <entry>labels</entry>
        <entry>last</entry>
        <entry>latch</entry>
        <entry>lcm</entry>
        <entry>ldb</entry>
        <entry>ldiff</entry>
        <entry>length</entry>
        <entry>let</entry>
        <entry>list</entry>
        <entry>listen</entry>
        <entry>listp</entry>
        <entry>load</entry>
        <entry>locally</entry>
        <entry>log</entry>
        <entry>logand</entry>
        <entry>logbitp</entry>
        <entry>logcount</entry>
        <entry>logeqv</entry>
        <entry>logior</entry>
        <entry>lognand</entry>
        <entry>lognor</entry>
        <entry>lognot</entry>
        <entry>logtest</entry>
        <entry>logxor</entry>
        <entry>loop</entry>
        <entry>macroexpand</entry>
        <entry>macrolet</entry>
        <entry>makunbound</entry>
        <entry>map</entry>
        <entry>mapc</entry>
        <entry>mapcan</entry>
        <entry>mapcar</entry>
        <entry>mapcon</entry>
        <entry>maphash</entry>
        <entry>mapl</entry>
        <entry>maplist</entry>
        <entry>mapping</entry>
        <entry>mask</entry>
        <entry>max</entry>
        <entry>member</entry>
        <entry>merge</entry>
        <entry>min</entry>
        <entry>mingle</entry>
        <entry>minusp</entry>
        <entry>mismatch</entry>
        <entry>mod</entry>
        <entry>namestring</entry>
        <entry>nbutlast</entry>
        <entry>nconc</entry>
        <entry>nintersection</entry>
        <entry>ninth</entry>
        <entry>not</entry>
        <entry>notany</entry>
        <entry>notevery</entry>
        <entry>nreconc</entry>
        <entry>nreverse</entry>
        <entry>nsublis</entry>
        <entry>nsubst</entry>
        <entry>nth</entry>
        <entry>nthcdr</entry>
        <entry>null</entry>
        <entry>numberp</entry>
        <entry>numerator</entry>
        <entry>nunion</entry>
        <entry>oddp</entry>
        <entry>open</entry>
        <entry>or</entry>
        <entry>packagep</entry>
        <entry>pairlis</entry>
        <entry>pathname</entry>
        <entry>pathnamep</entry>
        <entry>phase</entry>
        <entry>plusp</entry>
        <entry>pop</entry>
        <entry>position</entry>
        <entry>positions</entry>
        <entry>pprint</entry>
        <entry>previous</entry>
        <entry>princ</entry>
        <entry>print</entry>
        <entry>proclaim</entry>
        <entry>producing</entry>
        <entry>prog</entry>
        <entry>provide</entry>
        <entry>psetf</entry>
        <entry>psetq</entry>
        <entry>push</entry>
        <entry>pushnew</entry>
        <entry>random</entry>
        <entry>rassoc</entry>
        <entry>rational</entry>
        <entry>rationalize</entry>
        <entry>rationalp</entry>
        <entry>read</entry>
        <entry>readtablep</entry>
        <entry>realp</entry>
        <entry>realpart</entry>
        <entry>reduce</entry>
        <entry>rem</entry>
        <entry>remf</entry>
        <entry>remhash</entry>
        <entry>remove</entry>
        <entry>remprop</entry>
        <entry>replace</entry>
        <entry>require</entry>
        <entry>rest</entry>
        <entry>return</entry>
        <entry>revappend</entry>
        <entry>reverse</entry>
        <entry>room</entry>
        <entry>rotatef</entry>
        <entry>round</entry>
        <entry>rplaca</entry>
        <entry>rplacd</entry>
        <entry>sbit</entry>
        <entry>scan</entry>
        <entry>schar</entry>
        <entry>search</entry>
        <entry>second</entry>
        <entry>series</entry>
        <entry>set</entry>
        <entry>setf</entry>
        <entry>seventh</entry>
        <entry>shadow</entry>
        <entry>shiftf</entry>
        <entry>signal</entry>
        <entry>signum</entry>
        <entry>sin</entry>
        <entry>sinh</entry>
        <entry>sixth</entry>
        <entry>sleep</entry>
        <entry>some</entry>
        <entry>sort</entry>
        <entry>split</entry>
        <entry>sqrt</entry>
        <entry>step</entry>
        <entry>streamp</entry>
        <entry>string</entry>
        <entry>stringp</entry>
        <entry>sublis</entry>
        <entry>subseq</entry>
        <entry>subseries</entry>
        <entry>subsetp</entry>
        <entry>subst</entry>
        <entry>substitute</entry>
        <entry>subtypep</entry>
        <entry>svref</entry>
        <entry>sxhash</entry>
        <entry>symbolp</entry>
        <entry>tailp</entry>
        <entry>tan</entry>
        <entry>tanh</entry>
        <entry>tenth</entry>
        <entry>terpri</entry>
        <entry>third</entry>
        <entry>time</entry>
        <entry>tively</entry>
        <entry>trace</entry>
        <entry>truename</entry>
        <entry>truncate</entry>
        <entry>typecase</entry>
        <entry>typep</entry>
        <entry>unexport</entry>
        <entry>unintern</entry>
        <entry>union</entry>
        <entry>unless</entry>
        <entry>until</entry>
        <entry>untrace</entry>
        <entry>values</entry>
        <entry>vector</entry>
        <entry>vectorp</entry>
        <entry>warn</entry>
        <entry>when</entry>
        <entry>write</entry>
        <entry>zerop</entry>
	</pattern>
</language>